home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / !Interfaces / Universal Interfaces 2.0a1 / PInterfaces / TextUtils.p < prev    next >
Encoding:
Text File  |  1994-07-17  |  18.4 KB  |  527 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        TextUtils.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a1.  ETO #15, MPW prerelease.  Sunday, July 17, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT TextUtils;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __TEXTUTILS__}
  27. {$SETC __TEXTUTILS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC TextUtilsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __SCRIPT__}
  40. {$I Script.p}
  41. {$ENDC}
  42. {    Quickdraw.p                                                    }
  43. {        MixedMode.p                                                }
  44. {        QuickdrawText.p                                            }
  45. {    IntlResources.p                                                }
  46. {    Events.p                                                    }
  47. {        OSUtils.p                                                }
  48.  
  49. {$PUSH}
  50. {$ALIGN MAC68K}
  51. {$LibExport+}
  52. {
  53.  
  54.     Here are the current routine names and the translations to the older forms.
  55.     Please use the newer forms in all new code and migrate the older names out of existing
  56.     code as maintainance permits.
  57.     
  58.     New Name                    Old Name(s)
  59.     
  60.     CompareString                IUCompPString IUMagString IUMagPString IUCompString 
  61.     CompareText
  62.     DateString                    IUDatePString IUDateString 
  63.     EqualString                            
  64.     ExtendedToString            FormatX2Str
  65.     FindScriptRun
  66.     FindWordBreaks                NFindWord FindWord
  67.     FormatRecToString            Format2Str
  68.     GetIndString            
  69.     GetString
  70.     IdenticalString                IUMagIDString IUMagIDPString IUEqualString IUEqualPString
  71.     IdenticalText
  72.     InitDateCache
  73.     LanguageOrder                IULangOrder
  74.     LongDateString                IULDateString
  75.     LongTimeString                IULTimeString
  76.     LowercaseText                LwrText LowerText
  77.     Munger
  78.     NewString                
  79.     NumToString                
  80.     RelString                
  81.     ReplaceText
  82.     ScriptOrder                    IUScriptOrder
  83.     SetString                
  84.     StringOrder                    IUStringOrder
  85.     StringToDate                String2Date
  86.     StringToExtended            FormatStr2X
  87.     StringToFormatRec            Str2Format
  88.     StringToNum                
  89.     StringToTime                                
  90.     StripDiacritics                StripText
  91.     StyledLineBreak
  92.     TextOrder
  93.     TimeString                    IUTimeString IUTimePString
  94.     TruncString
  95.     TruncText
  96.     UpperString                    UprString
  97.     UppercaseStripDiacritics    StripUpperText
  98.     UppercaseText                UprText UprText
  99. }
  100. { New constants for System 7.0: }
  101.  
  102. CONST
  103. { Constants for truncWhere argument in TruncString and TruncText }
  104.     truncEnd                    = 0;                            { Truncate at end }
  105.     truncMiddle                    = $4000;                        { Truncate in middle }
  106.     smTruncEnd                    = 0;                            { Truncate at end - obsolete }
  107.     smTruncMiddle                = $4000;                        { Truncate in middle - obsolete }
  108. { Constants for TruncString and TruncText results }
  109.     notTruncated                = 0;                            { No truncation was necessary }
  110.     truncated                    = 1;                            { Truncation performed }
  111.     truncErr                    = -1;                            { General error }
  112.     smNotTruncated                = 0;                            { No truncation was necessary - obsolete }
  113.     smTruncated                    = 1;                            { Truncation performed    - obsolete }
  114.     smTruncErr                    = -1;                            { General error - obsolete }
  115.  
  116.     fVNumber                    = 0;                            { first version of NumFormatString }
  117. { Special language code values for Language Order }
  118.     systemCurLang                = -2;                            { current (itlbLang) lang for system script }
  119.     systemDefLang                = -3;                            { default (table) lang for system script }
  120.     currentCurLang                = -4;                            { current (itlbLang) lang for current script }
  121.     currentDefLang                = -5;                            { default lang for current script }
  122.     scriptCurLang                = -6;                            { current (itlbLang) lang for specified script }
  123.     scriptDefLang                = -7;                            { default language for a specified script }
  124.  
  125.     iuSystemCurLang                = -2;                            { <obsolete> current (itlbLang) lang for system script }
  126.     iuSystemDefLang                = -3;                            { <obsolete> default (table) lang for system script }
  127.     iuCurrentCurLang            = -4;                            { <obsolete> current (itlbLang) lang for current script }
  128.     iuCurrentDefLang            = -5;                            { <obsolete> default lang for current script }
  129.     iuScriptCurLang                = -6;                            { <obsolete> current (itlbLang) lang for specified script }
  130.  
  131. { <obsolete> default language for a specified script }
  132.     iuScriptDefLang                = -7;
  133.  
  134.     
  135. TYPE
  136. StyledLineBreakCode = SInt8;
  137.  
  138.  
  139. CONST
  140.     smBreakWord                    = 0;
  141.     smBreakChar                    = 1;
  142.     smBreakOverflow                = 2;
  143.  
  144.     
  145. TYPE
  146. FormatClass = SInt8;
  147.  
  148.  
  149. CONST
  150.     fPositive                    = 0;
  151.     fNegative                    = 1;
  152.     fZero                        = 2;
  153.  
  154.     
  155. TYPE
  156. FormatResultType = SInt8;
  157.  
  158.  
  159. CONST
  160.     fFormatOK                    = 0;
  161.     fBestGuess                    = 1;
  162.     fOutOfSynch                    = 2;
  163.     fSpuriousChars                = 3;
  164.     fMissingDelimiter            = 4;
  165.     fExtraDecimal                = 5;
  166.     fMissingLiteral                = 6;
  167.     fExtraExp                    = 7;
  168.     fFormatOverflow                = 8;
  169.     fFormStrIsNAN                = 9;
  170.     fBadPartsTable                = 10;
  171.     fExtraPercent                = 11;
  172.     fExtraSeparator                = 12;
  173.     fEmptyFormatString            = 13;
  174.  
  175.  
  176. TYPE
  177.     NumFormatString = PACKED RECORD
  178.         fLength:                UInt8;
  179.         fVersion:                UInt8;
  180.         data:                    PACKED ARRAY [0..253] OF CHAR;            { private data }
  181.     END;
  182.     NumFormatStringRec = NumFormatString;
  183.  
  184.     FVector = RECORD
  185.         start:                    INTEGER;
  186.         length:                    INTEGER;
  187.     END;
  188. { index by [fPositive..fZero] }
  189.     TripleInt = ARRAY [0..2] OF FVector;
  190.  
  191.     ScriptRunStatus = RECORD
  192.         script:                    SInt8;
  193.         runVariant:                SInt8;
  194.     END;
  195. { New types for System 7.0: }
  196. { Type for truncWhere parameter in new TruncString, TruncText }
  197.     TruncCode = INTEGER;
  198.  
  199.  
  200. CONST
  201.     shortDate                    = 0;
  202.     longDate                    = 1;
  203.     abbrevDate                    = 2;
  204.  
  205.     
  206. TYPE
  207. DateForm = SInt8;
  208.  
  209.  
  210. CONST
  211. { StringToDate status values }
  212.     fatalDateTime                = $8000;                        { StringToDate and String2Time mask to a fatal error }
  213.     longDateFound                = 1;                            { StringToDate mask to long date found }
  214.     leftOverChars                = 2;                            { StringToDate & Time mask to warn of left over characters }
  215.     sepNotIntlSep                = 4;                            { StringToDate & Time mask to warn of non-standard separators }
  216.     fieldOrderNotIntl            = 8;                            { StringToDate & Time mask to warn of non-standard field order }
  217.     extraneousStrings            = 16;                            { StringToDate & Time mask to warn of unparsable strings in text }
  218.     tooManySeps                    = 32;                            { StringToDate & Time mask to warn of too many separators }
  219.     sepNotConsistent            = 64;                            { StringToDate & Time mask to warn of inconsistent separators }
  220.     tokenErr                    = $8100;                        { StringToDate & Time mask for 'tokenizer err encountered' }
  221.     cantReadUtilities            = $8200;
  222.     dateTimeNotFound            = $8400;
  223.     dateTimeInvalid                = $8800;
  224.  
  225.     
  226. TYPE
  227. StringToDateStatus = INTEGER;
  228.  
  229.     String2DateStatus = INTEGER;
  230.  
  231.     DateCacheRecord = PACKED RECORD
  232.         hidden:                    ARRAY [0..255] OF INTEGER;                { only for temporary use }
  233.     END;
  234.     DateCachePtr = ^DateCacheRecord;
  235.  
  236.     BreakTable = RECORD
  237.         charTypes:                PACKED ARRAY [0..255] OF CHAR;
  238.         tripleLength:            INTEGER;
  239.         triples:                ARRAY [0..0] OF INTEGER;
  240.     END;
  241.     BreakTablePtr = ^BreakTable;
  242.  
  243. { New NBreakTable for System 7.0: }
  244.     NBreakTable = RECORD
  245.         flags1:                    SInt8;
  246.         flags2:                    SInt8;
  247.         version:                INTEGER;
  248.         classTableOff:            INTEGER;
  249.         auxCTableOff:            INTEGER;
  250.         backwdTableOff:            INTEGER;
  251.         forwdTableOff:            INTEGER;
  252.         doBackup:                INTEGER;
  253.         length:                    INTEGER;                                { length of NBreakTable }
  254.         charTypes:                PACKED ARRAY [0..255] OF CHAR;
  255.         tables:                    ARRAY [0..0] OF INTEGER;
  256.     END;
  257.     NBreakTablePtr = ^NBreakTable;
  258.  
  259. {
  260.     The following functions are new names that work on 68k and PowerPC
  261. }
  262.  
  263. FUNCTION InitDateCache(theCache: DateCachePtr): OSErr;
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $2F3C, $8204, $FFF8, $A8B5;
  266.     {$ENDC}
  267. FUNCTION Munger(h: Handle; offset: LONGINT; ptr1: UNIV Ptr; len1: LONGINT; ptr2: UNIV Ptr; len2: LONGINT): LONGINT;
  268.     {$IFC NOT GENERATINGCFM}
  269.     INLINE $A9E0;
  270.     {$ENDC}
  271. FUNCTION NewString(theString: ConstStr255Param): StringHandle;
  272.     {$IFC NOT GENERATINGCFM}
  273.     INLINE $A906;
  274.     {$ENDC}
  275. PROCEDURE SetString(theString: StringHandle; strNew: ConstStr255Param);
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $A907;
  278.     {$ENDC}
  279. FUNCTION GetString(stringID: INTEGER): StringHandle;
  280.     {$IFC NOT GENERATINGCFM}
  281.     INLINE $A9BA;
  282.     {$ENDC}
  283. PROCEDURE GetIndString(VAR theString: Str255; strListID: INTEGER; index: INTEGER);
  284. FUNCTION ScriptOrder(script1: ScriptCode; script2: ScriptCode): INTEGER;
  285.     {$IFC NOT GENERATINGCFM}
  286.     INLINE $3F3C, $001E, $A9ED;
  287.     {$ENDC}
  288. FUNCTION StyledLineBreak(textPtr: Ptr; textLen: LONGINT; textStart: LONGINT; textEnd: LONGINT; flags: LONGINT; VAR textWidth: Fixed; VAR textOffset: LONGINT): StyledLineBreakCode;
  289.     {$IFC NOT GENERATINGCFM}
  290.     INLINE $2F3C, $821C, $FFFE, $A8B5;
  291.     {$ENDC}
  292. FUNCTION TruncString(width: INTEGER; VAR theString: Str255; truncWhere: TruncCode): INTEGER;
  293.     {$IFC NOT GENERATINGCFM}
  294.     INLINE $2F3C, $8208, $FFE0, $A8B5;
  295.     {$ENDC}
  296. FUNCTION TruncText(width: INTEGER; textPtr: Ptr; VAR length: INTEGER; truncWhere: TruncCode): INTEGER;
  297.     {$IFC NOT GENERATINGCFM}
  298.     INLINE $2F3C, $820C, $FFDE, $A8B5;
  299.     {$ENDC}
  300. FUNCTION ReplaceText(baseText: Handle; substitutionText: Handle; VAR key: Str15): INTEGER;
  301.     {$IFC NOT GENERATINGCFM}
  302.     INLINE $2F3C, $820C, $FFDC, $A8B5;
  303.     {$ENDC}
  304. PROCEDURE FindWordBreaks(textPtr: Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; breaks: BreakTablePtr; VAR offsets: OffsetTable; script: ScriptCode);
  305.     {$IFC NOT GENERATINGCFM}
  306.     INLINE $2F3C, $C012, $001A, $A8B5;
  307.     {$ENDC}
  308. PROCEDURE LowercaseText(textPtr: Ptr; len: INTEGER; script: ScriptCode);
  309.     {$IFC NOT GENERATINGCFM}
  310.     INLINE $3F3C, $0000, $2F3C, $800A, $FFB6, $A8B5;
  311.     {$ENDC}
  312. PROCEDURE UppercaseText(textPtr: Ptr; len: INTEGER; script: ScriptCode);
  313.     {$IFC NOT GENERATINGCFM}
  314.     INLINE $3F3C, $0400, $2F3C, $800A, $FFB6, $A8B5;
  315.     {$ENDC}
  316. PROCEDURE StripDiacritics(textPtr: Ptr; len: INTEGER; script: ScriptCode);
  317.     {$IFC NOT GENERATINGCFM}
  318.     INLINE $3F3C, $0200, $2F3C, $800A, $FFB6, $A8B5;
  319.     {$ENDC}
  320. PROCEDURE UppercaseStripDiacritics(textPtr: Ptr; len: INTEGER; script: ScriptCode);
  321.     {$IFC NOT GENERATINGCFM}
  322.     INLINE $3F3C, $0600, $2F3C, $800A, $FFB6, $A8B5;
  323.     {$ENDC}
  324. FUNCTION FindScriptRun(textPtr: Ptr; textLen: LONGINT; VAR lenUsed: LONGINT): ScriptRunStatus;
  325.     {$IFC NOT GENERATINGCFM}
  326.     INLINE $2F3C, $820C, $0026, $A8B5;
  327.     {$ENDC}
  328. FUNCTION EqualString(str1: ConstStr255Param; str2: ConstStr255Param; caseSensitive: BOOLEAN; diacSensitive: BOOLEAN): BOOLEAN;
  329. PROCEDURE UpperString(VAR theString: Str255; diacSensitive: BOOLEAN);
  330. PROCEDURE StringToNum(theString: ConstStr255Param; VAR theNum: LONGINT);
  331. PROCEDURE NumToString(theNum: LONGINT; VAR theString: Str255);
  332. FUNCTION RelString(str1: ConstStr255Param; str2: ConstStr255Param; caseSensitive: BOOLEAN; diacSensitive: BOOLEAN): INTEGER;
  333. {
  334.     The following functions are old names, but are required for PowerPC builds
  335.     becuase InterfaceLib exports these names, instead of the new ones.
  336. }
  337. FUNCTION String2Date(textPtr: Ptr; textLen: LONGINT; theCache: DateCachePtr; VAR lengthUsed: LONGINT; VAR dateTime: LongDateRec): StringToDateStatus;
  338.     {$IFC NOT GENERATINGCFM}
  339.     INLINE $2F3C, $8214, $FFF6, $A8B5;
  340.     {$ENDC}
  341. FUNCTION String2Time(textPtr: Ptr; textLen: LONGINT; theCache: DateCachePtr; VAR lengthUsed: LONGINT; VAR dateTime: LongDateRec): StringToDateStatus;
  342.     {$IFC NOT GENERATINGCFM}
  343.     INLINE $2F3C, $8214, $FFF4, $A8B5;
  344.     {$ENDC}
  345. FUNCTION FormatX2Str(VAR x: extended80; myCanonical: NumFormatString; partsTable: NumberParts; VAR outString: Str255): FormatStatus;
  346.     {$IFC NOT GENERATINGCFM}
  347.     INLINE $2F3C, $8210, $FFE8, $A8B5;
  348.     {$ENDC}
  349. FUNCTION FormatStr2X(source: ConstStr255Param; myCanonical: NumFormatString; partsTable: NumberParts; VAR x: extended80): FormatStatus;
  350.     {$IFC NOT GENERATINGCFM}
  351.     INLINE $2F3C, $8210, $FFE6, $A8B5;
  352.     {$ENDC}
  353. FUNCTION IUMagString(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  354.     {$IFC NOT GENERATINGCFM}
  355.     INLINE $3F3C, $000A, $A9ED;
  356.     {$ENDC}
  357. FUNCTION IUMagIDString(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  358.     {$IFC NOT GENERATINGCFM}
  359.     INLINE $3F3C, $000C, $A9ED;
  360.     {$ENDC}
  361. FUNCTION IUMagPString(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  362.     {$IFC NOT GENERATINGCFM}
  363.     INLINE $3F3C, $001A, $A9ED;
  364.     {$ENDC}
  365. FUNCTION IUMagIDPString(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  366.     {$IFC NOT GENERATINGCFM}
  367.     INLINE $3F3C, $001C, $A9ED;
  368.     {$ENDC}
  369. PROCEDURE IUDateString(dateTime: LONGINT; longFlag: ByteParameter; VAR result: Str255);
  370.     {$IFC NOT GENERATINGCFM}
  371.     INLINE $4267, $A9ED;
  372.     {$ENDC}
  373. PROCEDURE IUTimeString(dateTime: LONGINT; wantSeconds: BOOLEAN; VAR result: Str255);
  374.     {$IFC NOT GENERATINGCFM}
  375.     INLINE $3F3C, $0002, $A9ED;
  376.     {$ENDC}
  377. PROCEDURE IUDatePString(dateTime: LONGINT; longFlag: ByteParameter; VAR result: Str255; intlHandle: Handle);
  378.     {$IFC NOT GENERATINGCFM}
  379.     INLINE $3F3C, $000E, $A9ED;
  380.     {$ENDC}
  381. PROCEDURE IUTimePString(dateTime: LONGINT; wantSeconds: BOOLEAN; VAR result: Str255; intlHandle: Handle);
  382.     {$IFC NOT GENERATINGCFM}
  383.     INLINE $3F3C, $0010, $A9ED;
  384.     {$ENDC}
  385. PROCEDURE IULDateString(VAR dateTime: LongDateTime; longFlag: ByteParameter; VAR result: Str255; intlHandle: Handle);
  386.     {$IFC NOT GENERATINGCFM}
  387.     INLINE $3F3C, $0014, $A9ED;
  388.     {$ENDC}
  389. PROCEDURE IULTimeString(VAR dateTime: LongDateTime; wantSeconds: BOOLEAN; VAR result: Str255; intlHandle: Handle);
  390.     {$IFC NOT GENERATINGCFM}
  391.     INLINE $3F3C, $0016, $A9ED;
  392.     {$ENDC}
  393. FUNCTION IUScriptOrder(script1: ScriptCode; script2: ScriptCode): INTEGER;
  394.     {$IFC NOT GENERATINGCFM}
  395.     INLINE $3F3C, $001E, $A9ED;
  396.     {$ENDC}
  397. FUNCTION IULangOrder(language1: LangCode; language2: LangCode): INTEGER;
  398.     {$IFC NOT GENERATINGCFM}
  399.     INLINE $3F3C, $0020, $A9ED;
  400.     {$ENDC}
  401. FUNCTION IUTextOrder(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  402.     {$IFC NOT GENERATINGCFM}
  403.     INLINE $3F3C, $0022, $A9ED;
  404.     {$ENDC}
  405. PROCEDURE FindWord(textPtr: Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; breaks: BreakTablePtr; VAR offsets: OffsetTable);
  406.     {$IFC NOT GENERATINGCFM}
  407.     INLINE $2F3C, $8012, $001A, $A8B5;
  408.     {$ENDC}
  409. PROCEDURE NFindWord(textPtr: Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; nbreaks: NBreakTablePtr; VAR offsets: OffsetTable);
  410.     {$IFC NOT GENERATINGCFM}
  411.     INLINE $2F3C, $8012, $FFE2, $A8B5;
  412.     {$ENDC}
  413. PROCEDURE UprText(textPtr: Ptr; len: INTEGER);
  414.     {$IFC NOT GENERATINGCFM}
  415.     INLINE $301F, $205F, $A054;
  416.     {$ENDC}
  417. PROCEDURE LwrText(textPtr: Ptr; len: INTEGER);
  418.     {$IFC NOT GENERATINGCFM}
  419.     INLINE $301F, $205F, $A056;
  420.     {$ENDC}
  421. PROCEDURE LowerText(textPtr: Ptr; len: INTEGER);
  422.     {$IFC NOT GENERATINGCFM}
  423.     INLINE $301F, $205F, $A056;
  424.     {$ENDC}
  425. PROCEDURE StripText(textPtr: Ptr; len: INTEGER);
  426.     {$IFC NOT GENERATINGCFM}
  427.     INLINE $301F, $205F, $A256;
  428.     {$ENDC}
  429. PROCEDURE UpperText(textPtr: Ptr; len: INTEGER);
  430.     {$IFC NOT GENERATINGCFM}
  431.     INLINE $301F, $205F, $A456;
  432.     {$ENDC}
  433. PROCEDURE StripUpperText(textPtr: Ptr; len: INTEGER);
  434.     {$IFC NOT GENERATINGCFM}
  435.     INLINE $301F, $205F, $A656;
  436.     {$ENDC}
  437. PROCEDURE UprString(VAR theString: Str255; diacSensitive: BOOLEAN);
  438. FUNCTION IUCompPString(aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  439. FUNCTION IUEqualPString(aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  440. FUNCTION IUStringOrder(aStr: ConstStr255Param; bStr: ConstStr255Param; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  441. FUNCTION IUCompString(aStr: ConstStr255Param; bStr: ConstStr255Param): INTEGER;
  442. FUNCTION IUEqualString(aStr: ConstStr255Param; bStr: ConstStr255Param): INTEGER;
  443. FUNCTION Str2Format(inString: ConstStr255Param; partsTable: NumberParts; VAR outString: NumFormatString): FormatStatus;
  444.     {$IFC NOT GENERATINGCFM}
  445.     INLINE $2F3C, $820C, $FFEC, $A8B5;
  446.     {$ENDC}
  447. FUNCTION Format2Str(myCanonical: NumFormatString; partsTable: NumberParts; VAR outString: Str255; VAR positions: TripleInt): FormatStatus;
  448.     {$IFC NOT GENERATINGCFM}
  449.     INLINE $2F3C, $8210, $FFEA, $A8B5;
  450.     {$ENDC}
  451. {
  452.     The following provide direct function prototypes for new names for 68k
  453. }
  454. PROCEDURE DateString(dateTime: LONGINT; longFlag: ByteParameter; VAR result: Str255; intlHandle: Handle);
  455.     {$IFC NOT GENERATINGCFM}
  456.     INLINE $3F3C, $000E, $A9ED;
  457.     {$ENDC}
  458. PROCEDURE TimeString(dateTime: LONGINT; wantSeconds: BOOLEAN; VAR result: Str255; intlHandle: Handle);
  459.     {$IFC NOT GENERATINGCFM}
  460.     INLINE $3F3C, $0010, $A9ED;
  461.     {$ENDC}
  462. PROCEDURE LongDateString(VAR dateTime: LongDateTime; longFlag: ByteParameter; VAR result: Str255; intlHandle: Handle);
  463.     {$IFC NOT GENERATINGCFM}
  464.     INLINE $3F3C, $0014, $A9ED;
  465.     {$ENDC}
  466. PROCEDURE LongTimeString(VAR dateTime: LongDateTime; wantSeconds: BOOLEAN; VAR result: Str255; intlHandle: Handle);
  467.     {$IFC NOT GENERATINGCFM}
  468.     INLINE $3F3C, $0016, $A9ED;
  469.     {$ENDC}
  470. FUNCTION CompareString(aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  471. FUNCTION IdenticalString(aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  472. FUNCTION CompareText(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  473.     {$IFC NOT GENERATINGCFM}
  474.     INLINE $3F3C, $001A, $A9ED;
  475.     {$ENDC}
  476. FUNCTION IdenticalText(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  477.     {$IFC NOT GENERATINGCFM}
  478.     INLINE $3F3C, $001C, $A9ED;
  479.     {$ENDC}
  480. FUNCTION LanguageOrder(language1: LangCode; language2: LangCode): INTEGER;
  481.     {$IFC NOT GENERATINGCFM}
  482.     INLINE $3F3C, $0020, $A9ED;
  483.     {$ENDC}
  484. FUNCTION TextOrder(aPtr: UNIV Ptr; bPtr: UNIV Ptr; aLen: INTEGER; bLen: INTEGER; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  485.     {$IFC NOT GENERATINGCFM}
  486.     INLINE $3F3C, $0022, $A9ED;
  487.     {$ENDC}
  488. FUNCTION StringOrder(aStr: ConstStr255Param; bStr: ConstStr255Param; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  489. FUNCTION StringToTime(textPtr: Ptr; textLen: LONGINT; theCache: DateCachePtr; VAR lengthUsed: LONGINT; VAR dateTime: LongDateRec): StringToDateStatus;
  490.     {$IFC NOT GENERATINGCFM}
  491.     INLINE $2F3C, $8214, $FFF4, $A8B5;
  492.     {$ENDC}
  493. FUNCTION StringToDate(textPtr: Ptr; textLen: LONGINT; theCache: DateCachePtr; VAR lengthUsed: LONGINT; VAR dateTime: LongDateRec): StringToDateStatus;
  494.     {$IFC NOT GENERATINGCFM}
  495.     INLINE $2F3C, $8214, $FFF6, $A8B5;
  496.     {$ENDC}
  497. FUNCTION StringToFormatRec(inString: ConstStr255Param; partsTable: NumberParts; VAR outString: NumFormatString): FormatStatus;
  498.     {$IFC NOT GENERATINGCFM}
  499.     INLINE $2F3C, $820C, $FFEC, $A8B5;
  500.     {$ENDC}
  501. FUNCTION FormatRecToString(myCanonical: NumFormatString; partsTable: NumberParts; VAR outString: Str255; VAR positions: TripleInt): FormatStatus;
  502.     {$IFC NOT GENERATINGCFM}
  503.     INLINE $2F3C, $8210, $FFEA, $A8B5;
  504.     {$ENDC}
  505. FUNCTION ExtendedToString(x: extended80; myCanonical: NumFormatString; partsTable: NumberParts; VAR outString: Str255): FormatStatus;
  506.     {$IFC NOT GENERATINGCFM}
  507.     INLINE $2F3C, $8210, $FFE8, $A8B5;
  508.     {$ENDC}
  509. FUNCTION StringToExtended(source: ConstStr255Param; myCanonical: NumFormatString; partsTable: NumberParts; VAR x: extended80): FormatStatus;
  510.     {$IFC NOT GENERATINGCFM}
  511.     INLINE $2F3C, $8210, $FFE6, $A8B5;
  512.     {$ENDC}
  513. {
  514.     The following are macros which map new names to the names exported by InterfaceLib
  515. }
  516.  
  517. {$ALIGN RESET}
  518. {$POP}
  519.  
  520. {$SETC UsingIncludes := TextUtilsIncludes}
  521.  
  522. {$ENDC} {__TEXTUTILS__}
  523.  
  524. {$IFC NOT UsingIncludes}
  525.  END.
  526. {$ENDC}
  527.